<?php

namespace Addons\Jininter\Controller;
use Home\Controller\AddonsController;

//一些基础的网络采集参数拼装

class BaseController extends AddonsController{
            /**
           * inter_curl 函数
           * @param string $url 请求的地址
           * @param string $type POST/GET/post/get
           * @param array $data 要传输的数据
           * @param string $err_msg 可选的错误信息（引用传递）
           * @param int $timeout 超时时间
           * @param array 证书信息
           * @author liw@alltosun.com
           **/
       function inter_go_curl($url, $type, $data = false, &$err_msg = null, $timeout = 30, $cert_info = array())
          {
              $type = strtoupper($type);
              if ($type == 'GET' && is_array($data)) {
                  $data = http_build_query($data);
              }
              $option = array();
              if ( $type == 'POST' ) {
                  $option[CURLOPT_POST] = 1;
              }
              if ($data) {
                  if ($type == 'POST') {
                      $option[CURLOPT_POSTFIELDS] = $data;
                  } elseif ($type == 'GET') {
                      $url = strpos($url, '?') !== false ? $url.'&'.$data :  $url.'?'.$data;
                  }
              }
              $option[CURLOPT_URL]            = $url;
              $option[CURLOPT_FOLLOWLOCATION] = TRUE;
              $option[CURLOPT_MAXREDIRS]      = 4;
              $option[CURLOPT_RETURNTRANSFER] = TRUE;
              $option[CURLOPT_TIMEOUT]        = $timeout;
              //设置证书信息
              if(!empty($cert_info) && !empty($cert_info['cert_file'])) {
                  $option[CURLOPT_SSLCERT]       = $cert_info['cert_file'];
                  $option[CURLOPT_SSLCERTPASSWD] = $cert_info['cert_pass'];
                  $option[CURLOPT_SSLCERTTYPE]   = $cert_info['cert_type'];
              }
              //设置CA
              if(!empty($cert_info['ca_file'])) {
                  // 对认证证书来源的检查，0表示阻止对证书的合法性的检查。1需要设置CURLOPT_CAINFO
                  $option[CURLOPT_SSL_VERIFYPEER] = 1;
                  $option[CURLOPT_CAINFO] = $cert_info['ca_file'];
              } else {
                  // 对认证证书来源的检查，0表示阻止对证书的合法性的检查。1需要设置CURLOPT_CAINFO
                  $option[CURLOPT_SSL_VERIFYPEER] = 0;
              }
              $ch = curl_init();
              curl_setopt_array($ch, $option);
              $response = curl_exec($ch);
              $curl_no  = curl_errno($ch);
              $curl_err = curl_error($ch);
              curl_close($ch);
              // error_log
              if($curl_no > 0) {
                  if($err_msg !== null) {
                      $err_msg = '('.$curl_no.')'.$curl_err;
                  }
              }
              return $response;
          }
 
         //网页表格提取为数组
        function get_td_array($table) {
            $table = preg_replace("'<table[^>]*?>'si","",$table);
            $table = preg_replace("'<tr[^>]*?>'si","",$table);
            $table = preg_replace("'<td[^>]*?>'si","",$table);
            $table = str_replace("</tr>","{tr}",$table);
            $table = str_replace("</td>","{td}",$table);
            $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
            $table = preg_replace("'([rn])[s]+'","",$table);
            $table = str_replace(" ","",$table);
            $table = str_replace(" ","",$table);
            $table = explode('{tr}', $table);
            array_pop($table);
            foreach ($table as $key=>$tr) {
            $td = explode('{td}', $tr);
            array_pop($td);
            $td_array[] = $td;
            }
            return $td_array;
        }
        
       

    
}
?>
